/*
7-4 冒泡法排序（10 分）提问
	将N个整数按从小到大排序的冒泡排序法是这样工作的：从头到尾比较相邻两个元素，如果前面的元素大于其紧随的后面元素，则交换它们。通过一遍扫描，则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推，最后只需处理两个元素，就完成了对N个数的排序。

	本题要求对任意给定的K（<N），输出扫描完第K遍后的中间结果数列。

	输入格式：
	输入在第1行中给出N和K（1≤K<N≤100），在第2行中给出N个待排序的整数，数字间以空格分隔。

	输出格式：
	在一行中输出冒泡排序法扫描完第K遍后的中间结果数列，数字间以空格分隔，但末尾不得有多余空格。

	输入样例：
	6 2
	2 3 5 1 6 4
	输出样例：
	2 1 3 4 5 6

*/

#include <iostream>
#include <string.h>
#include <string>
using namespace std;
int main()
{
	int n, k, i, j, t = 0;
	cin >> n >> k;
	int *arr = new int[n];
	for(i = 0; i < n; i++)
	{
		cin >> arr[i];
	}
	for(i = 0; i < k; i++)
	{
		for(j = 0; j < n - 1 - i; j++)
		{
			if(arr[j] > arr[j+1])
			{
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
	for(t = 0; t < n; t++)
	{
		cout << arr[t];
		if(t != n-1)
			cout << " ";
	}
	cout << endl;
	return 0;
}